package 约定编程;


import java.lang.reflect.InvocationTargetException;

/**
 * @author zyl
 * @Description
 * @since 2024/1/24 14:23
 */
public interface Interceptor {
    //事前方法
    public boolean before();
    //事后方法
    public void after();

    //取代
    public Object around(Invocation invocation) throws InvocationTargetException,IllegalAccessException;

    //是否返回方法 事件没有发生异常执行
    void afterReturning();

    //事后异常方法 当事件发生异常后执行
    void afterThrowing();

    //是否使 around 方法取代原有方法
    boolean userAround();
}
